package org.springblade.modules.admin.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.modules.admin.dto.rescue.RescueNoticeConfirmDTO;
import org.springblade.modules.admin.entity.MaintainMalfunctionWork;
import org.springblade.modules.admin.vo.plan.PlanMaintainUserVO;
import org.springblade.modules.system.entity.User;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * @Date 14:33 2021/5/26
 * @Description {
 *   新增计划对象
 * }
 * @Author lsay
 **/
@Data
public class 	PlanContentSaveDto implements Serializable {

	/**
	 * 电梯id
	 */
	@JsonSerialize(using = ToStringSerializer.class)
	private Long elevatorId;

	/**
	 * 任务类型 1-保养 2-维修 3-困人
	 */
	private Integer typeStatus;

	/**
	 * 任务来源 1-物业端 2-微信 3-服务电话
	 */
	private Integer planFrom;

	/**
	 * 任务编码
	 */
	private String planNum;

	/**
	 * 任务描述
	 */
	private String desc;

	/**
	 * 计划时间
	 */
	private String planDate;

	/**
	 * 2024-04-23 新增
	 * 计划完成时间
	 */
	@ApiModelProperty(value = "计划完成时间")
	private String finishDate;

	/**
	 * 被困人电话
	 */
	private String phone;

	private Long buildingId;

	private String buildingName;

	private String elevatorAddress;

	private Integer groupId;

	/**
	 * 停梯状态： 1-正常 2-停梯
	 */
	private Integer isStop;

	/**
	 * 维保人员信息
	 */
	List<PlanMaintainUserVO> maintainUserList;

	/**
	 * 报障人
	 */
	private String name;

	/**
	 * 故障图片及视频
	 */
	private List<HashMap<String,String>> mfImgUrl;

	private String problemItem;

	private String problemOtherDesc;

	@ApiModelProperty("审批人")
	private List<User> checkUsers;

	private String tenantId;

	@ApiModelProperty(value = "梯联网关联id")
	private String tlwJoinId;

	/**
	 * 来源
	 */
	private String fromType;

	@ApiModelProperty("待分配0,默认1")
	private Integer status;


	@ApiModelProperty("工单id")
	private Long planId;

	/**
	 * 紧急程度
	 */
	private Integer emerProcType;

	/**
	 * 工单类型
	 */
	private Integer workOrderType;

	@ApiModelProperty("任务来源id")
	private Long fromPlanId;

	private List<MaintainMalfunctionWork> works;

	/**
	 * 2024-04-23 新增
	 * sourcePlanType 计划来源类型,对应工单类型
	 */
	@ApiModelProperty(value = "计划来源类型,对应工单类型,typeStatus")
	private Integer sourcePlanType;

	@ApiModelProperty(value = "维修预计达到时间")
	private Date planArriveDate;

	@ApiModelProperty(value = "通过告警信息确认创建维修工单渠道对象")
	private RescueNoticeConfirmDTO confirmDTO;

	/**
	 * 2025-07 新增通过告警创建，关联维修工单id
	 */
	@ApiModelProperty(value = "通过告警创建，关联维修工单id")
	private Long rescueNoticeId;

	@ApiModelProperty(value = "通过告警创建的，备注")
	private String rescueNoticeRemark;
}
